package com.hgyc.mom.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hgyc.mom.system.entity.SysUser;
import com.hgyc.mom.system.vo.LoginVO;
import com.hgyc.mom.system.vo.SysUserParam;
import com.hgyc.mom.system.vo.UserInfoVO;

import java.util.List;

/**
 * <p>
 * 系统用户表 服务类
 * </p>
 *
 * @author fwj
 * @since 2025-01-16
 */
public interface SysUserService extends IService<SysUser> {

    /**
     * 登录
     * @param loginVO 登录信息
     */
    void login(LoginVO loginVO);

    /**
     * 根据账号获取用户
     * @param account 用户名
     * @return 用户
     */
    SysUser getByAccount(String account);

    /**
     * 获取用户信息
     * @return 用户信息
     */
    UserInfoVO getUserInfo();

    /**
     * 修改密码
     * @param sysUser 用户
     */
    void editPwd(SysUser sysUser);

    /**
     * 更新用户信息
     * @param sysUser 用户信息
     */
    void updateUserinfo(SysUser sysUser);

    /**
     * 创建用户
     * @param sysUser
     */
    void create(SysUser sysUser);

    /**
     * 删除用户，状态改成失效
     * @param ids 用户ID
     */
    void batchDel(List<Long> ids);

    /**
     * 分页查询角色分配的用户信息
     * @param page 分页信息
     * @param sysUserParam 用户查询条件
     * @return 用户信息
     */
    IPage<SysUser> rolePage(Page<SysUser> page, SysUserParam sysUserParam);
}
